package com.itheima;

public class TestLambda {
    public static void main(String args[]){
        testD();
    }
    public static void testD(){
        D d1= new D() {
            @Override
            public int max(int a, int b) {
                return Math.max(a, b);
            }
        };
        D d2= (a,b)-> a>b?a:b;

        D d3= Math::max;
        int max = d3.max(10, 20);
        System.out.println(max);

    }
    public static void testC(){
        C c1= new C() {
            @Override
            public String show(String name) {
                return "name =" + name;
            }
        };
        C c2= name-> "name =" + name;//创建C接口的Lambda表达式对象
        C c4= TestLambda::show4;
        String  result= c4.show("张三");
        System.out.println(result);
    }
    public static String show4(String name){
        return "name =" + name;

    }
    public static void testB(){
        B b1= new B() {
            @Override
            public void show(String name) {
                System.out.println(name);
            }
        };
        B b2= name-> System.out.println(name);

        B b3= System.out::println;
        b3.show("ania");
    }
    public static void testA(){
        A a1= new A() {
            @Override
            public void show(String name, int age) {
                System.out.println(name + "," + age);
            }
        };
        A a2= (name,age)-> System.out.println(name + "," + age);
        a2.show("张三", 18);

        A a3= TestLambda::show2;
        a3.show("李四", 20);//静态方法

        A a4= TestLambda::show3;
        a3.show("无敌", 38);
    }
    public static void show2(String name, int age){
        System.out.println("show2:"+name + "," + age);
    }
    public static void show3(String name, int age){
        System.out.println("show3:"+name + "," + age);
    }
}
